package com.bilibili.magicasakura.utils;

import android.view.inputmethod.InputConnection;
import android.view.inputmethod.InputConnectionWrapper;

/**
 * just used for fix
 * 
 * <pre>
 * java.lang.IndexOutOfBoundsException
 * </pre>
 * 
 * while invoke {@link InputConnection#setSelection(int, int)}
 *
 * @author Yann Chou
 * @email zhouyanbin1029@gmail.com
 * @create 2016-08-29 11:37
 */
public class InputConnectionImpl extends InputConnectionWrapper
{
    
    public InputConnectionImpl(InputConnection target, boolean mutable)
    {
        super(target, mutable);
    }
    
    @Override
    public boolean setSelection(int start, int end)
    {
        if (start < 0 || end < 0)
        {
            // If the given selection is out of bounds, just ignore it.
            // Most likely the text was changed out from under the IME,
            // and the IME is going to have to update all of its state
            // anyway.
            return true;
        }
        return super.setSelection(start, end);
    }
}
